package io.cattle.platform.datasource;
import io.cattle.platform.pool.PoolConfig;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
public class DefaultDataSourceFactoryImpl implements DataSourceFactory {
@Override
public DataSource createDataSource(String name) {
String server = PoolConfig.getProperty("db." + name + ".database");
String alias = PoolConfig.getProperty("db." + name + ".alias");
if (server == null && alias != null) {
server = PoolConfig.getProperty("db." + alias + ".database");
}
BasicDataSource ds = newBasicDataSource(name);
if (alias == null) {
PoolConfig.setConfig(ds, name, String.format("db.%s.%s.", name, server), String.format("db.%s.", name), "db.", "global.pool.");
} else {
PoolConfig.setConfig(ds, name, String.format("db.%s.%s.", name, server), String.format("db.%s.", name), String.format("db.%s.%s.", alias, server),
String.format("db.%s.", alias), "db.", "global.pool.");
}
return ds;
}
protected BasicDataSource newBasicDataSource(String name) {
return new BasicDataSource();
}
}